home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
u_man
/
cat1
/
as.z
/
as
Wrap
Text File
|
1998-10-30
|
17KB
|
396 lines
AAAASSSS((((1111)))) AAAASSSS((((1111))))
NNNNAAAAMMMMEEEE
as - SGI MIPSpro Assembler
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
aaaassss [ -o32 | -n32 | -64 ] [ option ] ... file ...
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
_a_s is the SGI assembler. It assembles a symbolic assembly language
source program, producing an object file in _e_l_f format. The SGI
assembler support three different Application Binary Interfaces
controlled by the options ----oooo33332222 , ----nnnn33332222 , and ----66664444 (see _a_b_i(_5) ) _A_s never
runs the loader.
_a_s always defines the preprocessor symbols: _LANGUAGE_ASSEMBLY, __sgi,
__mips, __host_mips, __unix, _MIPSEB, _SYSTYPE_SVR4, _SVR4_SOURCE,
_SGI_SOURCE, _MIPS_ISA, _MIPS_SIM, _MIPS_FPSET, _MIPS_SZINT,
_MIPS_SZLONG, and _MIPS_SZPTR. These are shown by the ----sssshhhhoooowwww option to
_a_s(1). The C preprocessor adds other standard definitions of its own
(see _c_p_p(1)).
The following options are interpreted by _a_s and have the same meaning in
_c_c(1). See _l_d(1) for load-time options.
CCCCoooommmmmmmmaaaannnnddddlllliiiinnnneeee OOOOppppttttiiiioooonnnnssss
This first set of options control the choice of ABI and ISA (Instruction
Set Architecture).
----oooo33332222 oooorrrr ----33332222
Generate a 32-bit object. This is the default on all systems that
are not based on the R8000. This implies ----mmmmiiiippppssss2222 if ----mmmmiiiippppssss1111 has not
been specified.
----66664444 Generate a 64-bit object. This is the default on R8000 systems.
This implies ----mmmmiiiippppssss4444 if ----mmmmiiiippppssss3333 has not been specified.
----nnnn33332222 Generate an n32 object. This implies ----mmmmiiiippppssss3333 if ----mmmmiiiippppssss4444 has not been
specified.
----mmmmiiiippppssss1111
Generate code using the instruction set of the R3000 RISC
architecture. This implies ----oooo33332222....
----mmmmiiiippppssss2222
Generate code using the MIPS II instruction set (MIPS I + some R4000
specific extensions). This implies ----oooo33332222....
----mmmmiiiippppssss3333
Generate code using the full R4000 instruction set. This implies
----nnnn33332222 (except on R8000-based systems it implies ----66664444)
PPPPaaaaggggeeee 1111
AAAASSSS((((1111)))) AAAASSSS((((1111))))
----mmmmiiiippppssss4444
Generate code using the full MIPS IV instruction set (64-bit R8000
extensions). This implies ----nnnn33332222 (except on R8000-based systems it
implies ----66664444)
Options valid in all three ABI's.
----ccccpppppppp Run the C macro preprocessor on assembly source files before
compiling. This is the default.
----DDDD_n_a_m_e=_d_e_f
----DDDD_n_a_m_e
Define the _n_a_m_e to the C macro preprocessor, as if by `#define'. If
no definition is given, the name is defined as "1".
----EEEE Run only the C macro preprocessor on the specified assembly source
files, and send the result to the standard output.
----GGGG _n_u_m
Specify the maximum size, in bytes, of a data item that is to be
accessed from the global pointer. _N_u_m is assumed to be a decimal
number. If _n_u_m is zero, no data is accessed from the global
pointer. The default value for _n_u_m is 8 bytes when using ----66664444 or
----nnnn33332222.... The default value for _n_u_m is 0 when using ----oooo33332222....
----gggg0000 Have the assembler produce no symbol table information for symbolic
debugging.
----gggg Have the assembler produce additional symbol table information for
full symbolic debugging. This is the default.
----IIII_d_i_r
`#include' files whose names do not begin with `/' are always sought
first in the directory of the _f_i_l_e argument, then in directories
specified in ----IIII options, and finally in the standard directory
(////uuuussssrrrr////iiiinnnncccclllluuuuddddeeee).
----IIII This option will cause `#include' files never to be searched for in
the standard directory (////uuuussssrrrr////iiiinnnncccclllluuuuddddeeee).
----kkkkeeeeeeeepppp
Build and use intermediate file names with the last component of the
source file's name replacing its suffix with the conventional
suffix for the type of file (for example `.i' file for preprocessed
source). These intermediate files are not removed. This option is
primarily for compiler debugging.
----nnnnooooccccpppppppp
Do not run the C macro preprocessor on assembly source before
compiling.
PPPPaaaaggggeeee 2222
AAAASSSS((((1111)))) AAAASSSS((((1111))))
----nnnnoooonnnn____sssshhhhaaaarrrreeeedddd
Don't generate position-independent code (PIC).
----OOOO0000 Turn off all optimizations. This is the default for ----66664444 or ----nnnn33332222....
----OOOO1111 Turn on all optimizations that can be done easily. This is the
default for ----oooo33332222....
----OOOO or ----OOOO2222
Turn on all optimizations. For ----66664444 or ----nnnn33332222 this just means
scheduling the code; for ----oooo33332222 this also means more aggressive
optimizations.
----oooo _o_u_t_p_u_t
Name the final output file _o_u_t_p_u_t. If this option is not used, the
output file is the input file name with a `.o' suffix rather than
the `.s' suffix.
----PPPP Run only the C macro preprocessor and put the result for each `.s'
file in a corresponding `.i' file. The `.i' file has no `#' lines
in it.
----sssshhhhoooowwww
Print the passes as they execute with their arguments and their
input and output files.
----UUUU_n_a_m_e
Remove any initial definition of _n_a_m_e.
CCCCoooommmmmmmmaaaannnnddddlllliiiinnnneeee OOOOppppttttiiiioooonnnnssss ((((----nnnn33332222 oooorrrr ----66664444 oooonnnnllllyyyy))))
----hhhheeeellllpppp
This will not run the assembler, but will list all the available
options.
----wwwwooooffffffff aaaallllllll
Suppress all warning messages.
The options described below primarily aid compiler development and are
not generally used:
----WWWWaaaa,,,,_a_r_g_1[,_a_r_g_2...]
Pass the argument[s] _a_r_g_i to the assembler pass. The commas between
the arguments are translated into spaces.
----YYYYaaaa,,,,_d_i_r_e_c_t_o_r_y
Use the aaaassssmmmm pass from the given _d_i_r_e_c_t_o_r_y.
CCCCoooommmmmmmmaaaannnnddddlllliiiinnnneeee OOOOppppttttiiiioooonnnnssss ((((----oooo33332222 oooonnnnllllyyyy))))
PPPPaaaaggggeeee 3333
AAAASSSS((((1111)))) AAAASSSS((((1111))))
The options described below primarily aid compiler development and are
not generally used:
----ffffuuuullllllllaaaassssoooopppptttt
Enable all the global optimizations done by the assembler. The
assembler can perform several global optimizations that are enabled
automatically for high level languages like C, Pascal and Fortran.
These optimizations are turned off by default while compiling an
assembly language source file. This is done because the
optimizations rely on the procedure calling convention to be
strictly followed. Several assembly language programs violate these
restrictions. The ----ffffuuuullllllllaaaassssoooopppptttt option allows enabling of these
optimizations for .s files.
----HHHH_c Halt compiling after the pass specified by the character _c,
producing an intermediate file for the next pass. The _c can be [[[[ aaaa
]]]].... It selects the assembler pass in the same way as the ----tttt option.
If this option is used, the symbol table file produced and used by
the passes,is the last component of the source file with the suffix
changed to `.T' and is not removed. Please note that this switch is
non-standard and may not be supported across product lines.
----KKKKPPPPIIIICCCC
Activates the assembler directives for generating position-
independent code (PIC). This is the default.
The options ----tttt[hhhhppppaaaabbbb], ----hhhh_p_a_t_h, and ----BBBB_s_t_r_i_n_g select a name to use for a
particular pass. These arguments are processed from left to right so
their order is significant. When the ----BBBB option is encountered, the
selection of names takes place using the last ----hhhh and ----tttt options. These
three options must be used together.
----tttt[hhhhppppaaaabbbb]
Select the names. The names selected are those designated by the
characters following the ----tttt option according to the following table:
Name Character
include h
cpp p
as0 a
as1 b
If the character `h' is in the ----tttt argument then a directory is added
to the list of directories to be used in searching for `#include'
files. This directory name has the form /_u_s_r/include_s_t_r_i_n_g. This
directory is to contain the include files for the _s_t_r_i_n_g release of
the compiler. The standard directory is still searched.
----hhhh_p_a_t_h
Use _p_a_t_h rather than the directory where the name is normally found.
Please note that this switch is non-standard and may not be
supported across product lines.
PPPPaaaaggggeeee 4444
AAAASSSS((((1111)))) AAAASSSS((((1111))))
----BBBB_s_t_r_i_n_g
Append _s_t_r_i_n_g to all names specified by the ----tttt option. If no ----tttt
option has been processed before the ----BBBB,,,, the ----tttt option is assumed to
be ``hpab''. This list designates all names.
----WWWW_c,_a_r_g_1[,_a_r_g_2...]
Pass the argument[s] _a_r_g_i to the assembler pass _c. The _c is one of [[[[
ppppaaaabbbb ]]]].... The c selects the assembler pass in the same way as the ----tttt
option. Of particular interest are several options to affect the
various optimizations done by the assembler. Most of these assembler
optimizations are fairly new and so are perhaps more likely to have
problems than other parts of the compiler:
----WWWWbbbb,,,,----nnnnooooxxxxbbbbbbbb
Turn off cross basic block instruction scheduling.
----WWWWbbbb,,,,----nnnnooooppppeeeeeeeepppp
Turn off peephole optimizations.
----WWWWbbbb,,,,----nnnnoooosssswwwwppppiiiippppeeee
Turn off software pipelining.
----WWWWbbbb,,,,----nnnnoooossssyyyymmmmrrrreeeeggggssss
Turn off symbolic register renaming.
Note: these global optimizations are enabled only when optimization level
----OOOO2222 or higher is selected for high level languages or the ----ffffuuuullllllllaaaassssoooopppptttt
option is used for assembly language files.
If the environment variable TMPDIR is set, the value is used as the
directory to place any temporary files rather than the default ////ttttmmmmpppp.
FFFFIIIILLLLEEEESSSS
file.o object file output
/usr/include standard `#include' file directory
((((----oooo33332222 OOOONNNNLLLLYYYY))))
/tmp/ctm* temporary files
/usr/lib/cpp C macro preprocessor
/usr/lib/as0 symbolic assembly language translator
/usr/lib/as1 binary assembler and reorganizer
((((----nnnn33332222 aaaannnndddd ----66664444 OOOONNNNLLLLYYYY))))
/tmp/cmplr* temporary files
/usr/lib32/cmplrs/cpp C macro preprocessor
/usr/lib32/cmplrs/asm symbolic assembler
BBBBUUUUGGGGSSSS
The assembler attempts to continue after finding semantic errors. These
errors may result in internal errors.
PPPPaaaaggggeeee 5555
AAAASSSS((((1111)))) AAAASSSS((((1111))))
SSSSEEEEEEEE AAAALLLLSSSSOOOO
MIPSpro Assembly Language Programmer's Guide,
MIPSpro N32 ABI Guide,
MIPSpro 64-bit Porting and Transition Guide,
cc(1), what(1), getabi(3c)
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
The diagnostics produced by the assembler are intended to be self-
explanatory.
NNNNOOOOTTTTEEEESSSS::::
The environment variable SSSSGGGGIIII____AAAABBBBIIII can be used to change the default ABI
behavior to be ----oooo33332222 , ----nnnn33332222 , or ----66664444 ; see getabi(3c). Also, the
/etc/compiler.defaults file can be used to change default behavior. See
the _c_c(1) man page for more information.
The environment variables COMP_TARGET_ROOT, TOOLROOT, RLS_ID_OBJECT are
used by _a_s while compiling the compiler itself. Their meaning is left
undefined intentionally. They should nnnnooootttt be set in your environment.
PPPPaaaaggggeeee 6666